'Description: Gives access to File Explorer capabilities and shows
'             progress dialog and / or error dialogs

'Place the following code in a Module

'Public Const FO_MOVE As Long = &H1
'Public Const FO_COPY As Long = &H2
'Public Const FO_DELETE As Long = &H3
'Public Const FO_RENAME As Long = &H4
'Public Const FOF_MULTIDESTFILES As Long = &H1
'Public Const FOF_CONFIRMMOUSE As Long = &H2
'Public Const FOF_SILENT As Long = &H4
'Public Const FOF_RENAMEONCOLLISION As Long = &H8
'Public Const FOF_NOCONFIRMATION As Long = &H10
'Public Const FOF_WANTMAPPINGHANDLE As Long = &H20
'Public Const FOF_CREATEPROGRESSDLG As Long =&H0
'Public Const FOF_ALLOWUNDO As Long = &H40
'Public Const FOF_FILESONLY As Long = &H80
'Public Const FOF_SIMPLEPROGRESS As Long = &H100
'Public Const FOF_NOCONFIRMMKDIR As Long = &H200

'Type SHFILEOPSTRUCT
'     hwnd As Long
'     wFunc As Long
'     pFrom As String
'     pTo As String
'     fFlags As Long
'     fAnyOperationsAborted As Long
'     hNameMappings As Long
'     lpszProgressTitle As String
'End Type

'Declare Function SHFileOperation Lib "Shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long



'Place the following code under a command button or in a menu, etc...

Dim result As Long, fileop As SHFILEOPSTRUCT
With fileop
        .hwnd = Me.hwnd
        .wFunc = FO_COPY
        .pFrom = "C:\PROGRAM FILES\MICROSOFT VISUAL BASIC\VB.HLP" & vbNullChar & "C:\PROGRAM FILES\MICROSOFT VISUAL BASIC\README.HLP" & vbNullChar & vbNullChar
'       .pFrom = "C:\*.*" & vbNullChar & vbNullChar
        .pTo = "C:\testfolder" & vbNullChar & vbNullChar
        .fFlags = FOF_SIMPLEPROGRESS Or FOF_FILESONLY
End With
result = SHFileOperation(fileop)
If result <> 0 Then
        ' Operation failed
        MsgBox Err.LastDllError 
Else
        If fileop.fAnyOperationsAborted <> 0 Then
                      MsgBox "Operation Failed"
         End If
End If